home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Graphics / Misc / Wood.0.72 / Sources / MMA.bproj / lexer.lm next >
Encoding:
Text File  |  1994-06-05  |  747 b   |  49 lines

  1. %{
  2.  
  3. #import <appkit/appkit.h>
  4. #import <ansi/stdlib.h>
  5. #import <ansi/string.h>
  6. #import <ansi/math.h>
  7. #import <bsd/sys/param.h>
  8. #import "Tree.h"
  9. #import "y.tab.h"
  10.  
  11. #undef YY_INPUT
  12. #define YY_INPUT(b, r, ms) (r = my_yyinput(b, ms))
  13.  
  14. static int my_yyinput(char *buf, int max_size);
  15. static NXStream *curStream;
  16.  
  17. %}
  18.  
  19. let        [_a-zA-Z]
  20. alnum    [-_a-zA-Z0-9]
  21.  
  22. %%
  23.  
  24. "{"                            return LB;
  25. "}"                            return RB;
  26. ","                            return COMMA;
  27.  
  28. {let}{alnum}*                { 
  29.                                 mmayylval.name = NXCopyStringBuffer(mmayytext);
  30.                                 return NAME;
  31.                             }
  32.  
  33. %%
  34.  
  35. void mmaPrepareTextToScan(NXStream *text)
  36. {
  37.     curStream = text;
  38. }
  39.      
  40. static int my_yyinput(char *buf, int max_size)
  41. {
  42.     return NXRead(curStream, (void *) buf, max_size * sizeof(char));
  43. }
  44.  
  45. int mmayywrap()
  46. {
  47.     return 1;
  48. }
  49.